package communication.game;

import game.MinimalGame;
import communication.ComCliSrv;

import server.ServerInternals;

/**
 * Objet envoye au serveur pour joindre une partie
 * @author Jonathan Gander
 * @version 0.1
 */
public class JoinGame extends ComCliSrv {
	
	/**
	 * Pour la serialisation
	 */
	private static final long serialVersionUID = 8462512473616218944L;

	/**
	 * Id de la partie a joindre
	 */
	private int id;
	
	/**
	 * Pseudo de la personne a ajouter
	 */
	private String pseudo;
	
	/**
	 * Constructeur, un joueur rejoind une partie
	 * @param id id de la partie
	 * @param pseudo nom du joueur
	 */
	public JoinGame (int id, String pseudo) {
		this.id = id;
		this.pseudo = pseudo;
	}
	
	/**
	 * Permet de joindre une partie
	 */
	public void handleServerInternals(ServerInternals internals) {
		
		internals.getGame(id).addPlayer(pseudo);
		
		
		// Actualise la liste des parties sur les clients
		internals.sendGameList();
		
		// Confirme la jointure de la partie
		internals.sendDataToClients(internals.getGame(id).getPlayersSockets(), new ConfirmGameJoined(new MinimalGame(internals.getGame(id))));
	}
}
